TritonNvidiaGPUOps
triton_nvidia_gpu.async_tma_copy_global_to_local (triton::nvidia_gpu::AsyncTMACopyGlobalToLocalOp)
根据描述符将数据从全局内存异步复制到本地内存
语法:
operation ::= `triton_nvidia_gpu.async_tma_copy_global_to_local` $desc_ptr `[` $coord `]` $result `,` $barrier `,` $pred
oilist(`cacheModifier` `=` $cache | `evictionPolicy` `=` $evict)
attr-dict `:` type($desc_ptr) `,` type($barrier) `->` type($result)
该操作是数据从全局内存异步复制到本地内存。类似于 tt.load,不同之处在于数据被复制到由内存描述符指向的本地内存,而不是分布式张量。被复制的数据取决于由 desc_ptr 指向的全局内存描述符。
特征:VerifyTensorLayoutsTrait
接口:MemoryEffectOpInterface
属性:
| Attribute | MLIR Type | Description |
|---|---|---|
| cache | ::mlir::triton::CacheModifierAttr | 允许 32-bit 无符号整数情况:1, 2, 3, 4, 5, 6 |
| evict | ::mlir::triton::EvictionPolicyAttr | 允许 32-bit 无符号整数情况:1, 2, 3 |
| isVolatile | ::mlir::BoolAttr | 布尔属性 |
操作:
| 操作 | 描述 |
|---|---|
| desc_ptr | Triton IR 类型系统中的指针类型 |
| coord | 32-bit 无符号整数可变参数 |
| barrier | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
| result | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
| pred | 1-bit 无符号整数 |
triton_nvidia_gpu.async_tma_copy_local_to_global (triton::nvidia_gpu::AsyncTMACopyLocalToGlobalOp)
基于描述符将数据从本地内存异步复制到全局内存
语法:
operation ::= `triton_nvidia_gpu.async_tma_copy_local_to_global` $desc_ptr `[` $coord `]` $src
attr-dict `:` type($desc_ptr) `,` type($src)
这个操作是异步将数据从本地内存复制到全局内存。类似于 tt.store,不同之处在于数据是从由内存描述符指向的本地内存复制出来,而不是从分布式张量。被复制的数据取决于由 desc_ptr 指向的全局内存描述符。
特征:VerifyTensorLayoutsTrait
接口:MemoryEffectOpInterface
操作:
| 操作 | 描述 |
|---|---|
| desc_ptr | Triton IR 类型系统中的指针类型 |
| coord | 32-bit 无符号整数可变参数 |
| src | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
triton_nvidia_gpu.barrier_expect (triton::nvidia_gpu::BarrierExpectOp)
发出一个预期要复制的字节数的屏障信号。
语法:
operation ::= `triton_nvidia_gpu.barrier_expect` $alloc `,` $size attr-dict `,` $pred `:` type($alloc)
这个操作发出一个屏障信号,表示预期将复制 size 字节。相关的屏障等待将阻塞,直到预期的字节数被复制完成。
特征:VerifyTensorLayoutsTrait
接口:MemoryEffectOpInterface
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| size | ::mlir::IntegerAttr | 32-bit 无符号整数属性 |
操作:
| 操作 | 描述 |
|---|---|
| alloc | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
| pred | 1-bit 无符号整数 |
triton_nvidia_gpu.cluster_arrive (triton::nvidia_gpu::ClusterArriveOp)
语法:
operation ::= `triton_nvidia_gpu.cluster_arrive` attr-dict
特征:VerifyTensorLayoutsTrait
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| relaxed | ::mlir::IntegerAttr | 1-bit 无符号整数属性 |
triton_nvidia_gpu.cluster_wait (triton::nvidia_gpu::ClusterWaitOp)
语法:
operation ::= `triton_nvidia_gpu.cluster_wait` attr-dict
特征:VerifyTensorLayoutsTrait
triton_nvidia_gpu.fence_async_shared (triton::nvidia_gpu::FenceAsyncSharedOp)
异步代理屏障
语法:
operation ::= `triton_nvidia_gpu.fence_async_shared` attr-dict
特征:VerifyTensorLayoutsTrait
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| bCluster | ::mlir::BoolAttr | 布尔属性 |
triton_nvidia_gpu.init_barrier (triton::nvidia_gpu::InitBarrierOp)
初始化给定的共享内存分配的屏障
语法:
operation ::= `triton_nvidia_gpu.init_barrier` $alloc `,` $count attr-dict `:` type($alloc)
初始化带有 mbarrier 信息的共享内存分配。alloc 是指向共享内存分配的描述符。count 是屏障预期到达的次数。
这将降级为 PTX 指令 mbarrier.init.shared::cta.b64。
特征:VerifyTensorLayoutsTrait
接口:MemoryEffectOpInterface
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| count | ::mlir::IntegerAttr | 32-bit 无符号整数属性 |
操作:
| 操作 | 描述 |
|---|---|
| alloc | Triton IR 类型系统中的内存描述符(::mlir::triton::MemDescType) |
triton_nvidia_gpu.inval_barrier (triton::nvidia_gpu::InvalBarrierOp)
无效屏障分配
语法:
operation ::= `triton_nvidia_gpu.inval_barrier` $alloc attr-dict `:` type($alloc)
使屏障分配失效,以便可以重新使用。根据 PTX 规范,这必须在 mbarrier 使用的内存重新使用之前完成。
特征:VerifyTensorLayoutsTrait
接口:MemoryEffectOpInterface
操作:
| 操作 | 描述 |
|---|---|
| alloc | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
triton_nvidia_gpu.async_tma_store_wait (triton::nvidia_gpu::TMAStoreWait)
等待所有输入被读取
语法:
operation ::= `triton_nvidia_gpu.async_tma_store_wait` attr-dict
在写入共享内存之前,必须等待所有与相关存储操作关联的读取操作完成。
特征:VerifyTensorLayoutsTrait
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| pendings | ::mlir::IntegerAttr | 32-bit 无符号整数属性 |
triton_nvidia_gpu.wait_barrier (triton::nvidia_gpu::WaitBarrierOp)
等待屏障段完成
语法:
operation ::= `triton_nvidia_gpu.wait_barrier` $alloc `,` $phase attr-dict `:` type($alloc)
阻塞程序进度,直到 alloc 中的 mbarrier 对象完成其当前阶段。
这会使用 PTX 指令 mbarrier.try_wait.parity.shared.b64 来降低等待循环。
屏障行为描述见:
特征:VerifyTensorLayoutsTrait
接口:M``emoryEffectOpInterface
操作:
| 操作 | 描述 |
|---|---|
| alloc | Triton IR 类型系统中的内存描述符 (::mlir::triton::MemDescType) |
| phase | 32-bit 无符号整数 |
triton_nvidia_gpu.warp_group_dot (triton::nvidia_gpu::WarpGroupDotOp)
Warp 组点乘
语法:
operation ::= `triton_nvidia_gpu.warp_group_dot` $a`,` $b`,` $c attr-dict `:` type($a) `*` type($b) `->` type($d)
a, c。 InputPrecisionAttr 的文档可见 TT_DotOp
特征:DotLike, VerifyTensorLayoutsTrait
接口:InferTypeOpInterface, MemoryEffectOpInterface
属性:
| Attribute | MLIR Type | Description |
|---|---|---|
| inputPrecision | ::mlir::triton::InputPrecisionAttr | 允许 32-bit 无符号整数情况: 0, 1, 2 |
| maxNumImpreciseAcc | ::mlir::IntegerAttr | 32-bit 无符号整数属性 |
| isAsync | ::mlir::BoolAttr | 布尔属性 |
操作:
| 操作 | 描述 |
|---|---|
| a | TensorOrMemDesc 实例 |
| b | TensorOrMemDesc 实例 |
| c | 浮点\整数值有序张量 |
结果:
| Result | Description |
|---|---|
| d | 浮点\整数值有序张量 |
triton_nvidia_gpu.warp_group_dot_wait (triton::nvidia_gpu::WarpGroupDotWaitOp)
等待 Warp 组点乘完成
语法:
operation ::= `triton_nvidia_gpu.warp_group_dot_wait` $inputs attr-dict `:` type($inputs)
等待直到未完成的异步点积操作数量为 $pendings 或更少。
inputs 必须是第一个点乘操作的结果。
特征:VerifyTensorLayoutsTrait
接口:InferTypeOpInterface
属性:
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
| pendings | ::mlir::IntegerAttr | 32-bit 无符号整数属性 |
操作:
| 操作 | 描述 |
|---|---|
| inputs | TensorOrMemDesc 实例的可变参数 |
结果:
| Result | Description |
|---|---|
| outputs | TensorOrMemDesc 实例的可变参数 |